package com.cs.beneficios.web.action;

import com.cs.beneficios.business.entity.AtributosDAO;
import com.cs.beneficios.business.entity.RepBeneficioOtorgadoDAO;
import com.cs.beneficios.business.entity.VflexDAO;
import com.cs.beneficios.business.model.AtributoVO;
import com.cs.beneficios.business.model.CondicionConsultaVO;
import com.cs.beneficios.business.model.RepAtributoVO;
import com.cs.beneficios.business.model.RepBeneficioOtorgadoVO;
import com.cs.beneficios.business.model.VflexVO;
import com.cs.beneficios.common.ConnectionFactory;
import com.cs.beneficios.common.entity.Consultas;

import java.io.IOException;

import java.sql.SQLException;

import java.util.Collection;
import java.util.LinkedList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;


public class SeleccionEGAction extends Action {
	/**This is the main action called from the Struts framework.
	 * @param mapping The ActionMapping used to select this instance.
	 * @param form The optional ActionForm bean for this request.
	 * @param request The HTTP Request we are processing.
	 * @param response The HTTP Response we are processing.
	 */
	public ActionForward execute(
				ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response
			) throws IOException, ServletException {
		HttpSession session = request.getSession();
		ConnectionFactory cf = new ConnectionFactory();

		Consultas objCons = new Consultas(cf);
		String marcaReporte = request.getParameter("generar");
		String posicion = request.getParameter("posicion");

		if (marcaReporte != null && marcaReporte.length() > 0 && posicion != null && posicion.length() > 0) {
			try {
				request.setAttribute("codsub", marcaReporte);

				String strCodsubpro = "";
				String strCodSede = "";
				RepBeneficioOtorgadoDAO objBeneOtorDAO;
				List lbeneotorgado = (List)session.getAttribute("BeneficiosOtorgado");
				boolean elim = false;

				if (lbeneotorgado != null) {
					int iPosicion = Integer.parseInt(posicion.trim());

					RepBeneficioOtorgadoVO objRBOVO = (RepBeneficioOtorgadoVO)lbeneotorgado.get(iPosicion);
					session.setAttribute("fechaInicial", objRBOVO.getDesde());
					session.setAttribute("fechaFinal", objRBOVO.getHasta());
					strCodSede = String.valueOf(objRBOVO.getCodeSede());
				}

				List lFiltrado;
				Collection coFiltrado = (Collection)session.getAttribute("ListaFiltrado");
				if (coFiltrado != null) {
					String strCodigo = request.getParameter("codigos");
					if (strCodigo != null && strCodigo.length() > 0) {
						elim = true;

						CondicionConsultaVO objCondiCons = new CondicionConsultaVO();
						lFiltrado = (List)session.getAttribute("ListaFiltrado");
						for (int s = 0; s < lFiltrado.size(); s++) {
							objCondiCons = (CondicionConsultaVO)lFiltrado.get(s);
							if (objCondiCons.getCodigo().toString().equals(strCodigo)) {
								lFiltrado.remove(s);
							}
						}

					}
				}

				if (!elim) {
					Object obAccion = request.getParameter("accion");
					if (obAccion.equals("")) {
						strCodsubpro = request.getParameter("generar");
						lFiltrado = new LinkedList();

						String ArrAtri[] = 
						{ "TIPO_DOCUMENTO", "NUMERO_DOCUMENTO", "PRIMER_NOMBRE", "SEGUNDO_NOMBRE", "PRIMER_APELLIDO", 
						  "SEGUNDO_APELLIDO", "DIRECCION_DESCRIPTIVA", "DIRECCION_ENCASILLADA", "SEXO", 
						  "FECHA_NACIMIENTO", "VFL_CODIGO_COMUNA", "VFL_CODIGO_ZONA", "LOCALIZACION_COBAMA", 
						  "VFL_CODIGO_BARRIO", "TELEFONO", "ETNIA", "CORREO_ELECTRONICO", "FICHA_SISBEN", 
						  "HOGAR_SISBEN", "ORDEN_SISBEN", "NIVEL_SISBEN", "PUNTAJE_SISBEN", "FE_ENCUESTA_SISBEN", 
						  "DISCAPACIDAD_SISBEN" };
						String ArrAtri2[] = 
						{ "TIPO DOCUMENTO", "NUMERO DOCUMENTO", "PRIMER NOMBRE", "SEGUNDO NOMBRE", "PRIMER APELLIDO", 
						  "SEGUNDO APELLIDO", "DIRECCION DESCRIPTIVA", "DIRECCION ENCASILLADA", "SEXO", 
						  "FECHA NACIMIENTO", "COMUNA/CORREGIMIENTO", "ZONA", "LOCALIZACION COBAMA", "BARRIO/VEREDA", 
						  "TELEFONO", "ETNIA", "CORREO ELECTRONICO", "FICHA SISBEN", "HOGAR SISBEN", "ORDEN SISBEN", 
						  "NIVEL SISBEN", "PUNTAJE SISBEN", "FECHA ENCUESTA SISBEN", "DISCAPACIDAD SISBEN" };

						List lAtributosBeneficiario = new LinkedList();
						List lAtriBeneficiarios = new LinkedList();
						for (int j = 0; j < ArrAtri2.length; j++) {
							RepAtributoVO repatriVO = new RepAtributoVO();

							repatriVO.setNombre(ArrAtri[j]);
							repatriVO.setEtiqueta(ArrAtri2[j]);
							repatriVO.setOrigen("G");
							lAtributosBeneficiario.add(repatriVO);
							if (j != 6 && j != 7) {
								RepAtributoVO repatri2VO = new RepAtributoVO();
								repatri2VO.setNombre(ArrAtri[j]);
								repatri2VO.setEtiqueta(ArrAtri2[j]);
								repatri2VO.setOrigen("G");
								lAtriBeneficiarios.add(repatri2VO);
							}
						}
						session.setAttribute("listabeneficiario", (Object)lAtributosBeneficiario);
						session.setAttribute("lbeneficiarios", (Object)lAtriBeneficiarios);

					} else {
						strCodsubpro = (String)session.getAttribute("generar");
						strCodSede = (String)session.getAttribute("sede");

						String strCodAtributo = request.getParameter("codigo");
						String strNombreAtri = "";
						session.setAttribute("codigo", strCodAtributo);
						Collection coListas = null;
						int espgen = 0;
						int ir = 0;
						if (!strCodAtributo.equals("nulo")) {
							List lVerificarOrigen = (List)session.getAttribute("listabeneficiario");
							int tamaVerifOrigen = lVerificarOrigen.size();
							if (tamaVerifOrigen != 0) {
								for (int i = 0; i < tamaVerifOrigen; i++) {
									RepAtributoVO VO = (RepAtributoVO)lVerificarOrigen.get(i);
									String comparacion = VO.getNombre();
									if (strCodAtributo.equals(comparacion)) {
										ir = 1;
									}
								}
							}
						}

						if (!strCodAtributo.equals("nulo")) {
							coListas = new LinkedList();
							//Proceso para llenar la lista de filtrado con los atributos del beneficiario
							if (strCodAtributo.equals("TIPO_DOCUMENTO")) {
								strNombreAtri = "TIPO DOCUMENTO";
								espgen = 1;
								session.setAttribute("tipodato", "A");
								String Arrlista[] = 
								{ "CEDULA CIUDADANIA", "CEDULA EXTRANGERIA", "NIT", "PASAPORTE", "REGISTRO CIVIL", 
								  "TARJETA IDENTIDAD", "NIP", "NUIP", "NISE", "CABILDO", "OTRO" };
								String Arrlista2[] = { "C", "E", "N", "P", "R", "T", "I", "U", "S", "A", "0" };
								for (int h = 0; h < Arrlista2.length; h++) {
									VflexVO valorVO = new VflexVO();
									valorVO.setDescVflex(Arrlista[h]);
									valorVO.setNombreVflex(Arrlista2[h] + "~" + Arrlista[h]);
									valorVO.setCodigoVflex(Arrlista2[h]);
									coListas.add(valorVO);
								}
								session.setAttribute("listavfl", (Object)coListas);

							} else if (strCodAtributo.equals("NUMERO_DOCUMENTO")) {
								strNombreAtri = "NUMERO DOCUMENTO";
								espgen = 1;
								coListas = null;
								session.setAttribute("tipodato", "A");
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("PRIMER_NOMBRE")) {
								strNombreAtri = "PRIMER NOMBRE";
								espgen = 1;
								coListas = null;
								session.setAttribute("tipodato", "A");
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("SEGUNDO_NOMBRE")) {
								strNombreAtri = "SEGUNDO NOMBRE";
								espgen = 1;
								coListas = null;
								session.setAttribute("tipodato", "A");
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("PRIMER_APELLIDO")) {
								strNombreAtri = "PRIMER APELLIDO";
								espgen = 1;
								coListas = null;
								session.setAttribute("tipodato", "A");
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("SEGUNDO_APELLIDO")) {
								strNombreAtri = "SEGUNDO APELLIDO";
								espgen = 1;
								coListas = null;
								session.setAttribute("tipodato", "A");
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("SEXO")) {
								strNombreAtri = "SEXO";
								espgen = 1;
								session.setAttribute("tipodato", "A");
								String Arrlista[] = { "MASCULINO", "FEMENINO" };
								String Arrlista2[] = { "M", "F" };
								for (int h = 0; h < 2; h++) {
									VflexVO valorVO = new VflexVO();
									valorVO.setDescVflex(Arrlista[h]);
									valorVO.setNombreVflex(Arrlista2[h] + "~" + Arrlista[h]);
									valorVO.setCodigoVflex(Arrlista2[h]);
									coListas.add(valorVO);
								}
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("FECHA_NACIMIENTO")) {
								strNombreAtri = "FECHA NACIMIENTO";
								espgen = 1;
								coListas = null;
								session.setAttribute("tipodato", "F");
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("VFL_CODIGO_COMUNA")) {
								strNombreAtri = "COMUNA/CORREGIMIENTO";
								espgen = 1;
								session.setAttribute("tipodato", "A");
								String strNomTipoVfl = "COMUNA";
								VflexDAO valorflexDAO = new VflexDAO(cf);
								try {
									coListas = valorflexDAO.getVflex(strNomTipoVfl);
									cf.closeConnection(valorflexDAO.getConn());
								} catch (SQLException e) {
									System.err.println("/******** TDSUB - cwsub");
									e.printStackTrace();
									System.err.println("TDSSPE - cwsub ********/");
								}
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("VFL_CODIGO_ZONA")) {
								strNombreAtri = "ZONA";
								espgen = 1;
								session.setAttribute("tipodato", "A");
								String strNomTipoVfl = "ZONA";
								VflexDAO valorflexDAO = new VflexDAO(cf);
								try {
									coListas = valorflexDAO.getVflex(strNomTipoVfl);
									cf.closeConnection(valorflexDAO.getConn());
								} catch (SQLException e) {
									System.err.println("/******** TDSUB - cwsub");
									e.printStackTrace();
									System.err.println("TDSSPE - cwsub ********/");
								}
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("LOCALIZACION_COBAMA")) {
								strNombreAtri = "LOCALIZACION COBAMA";
								espgen = 1;
								coListas = null;
								session.setAttribute("tipodato", "N");
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("VFL_CODIGO_BARRIO")) {
								strNombreAtri = "BARRIO/VEREDA";
								espgen = 1;
								session.setAttribute("tipodato", "A");
								String strNomTipoVfl = "BARRIO";
								VflexDAO valorflexDAO = new VflexDAO(cf);
								try {
									coListas = valorflexDAO.getVflex(strNomTipoVfl);
									cf.closeConnection(valorflexDAO.getConn());
								} catch (SQLException e) {
									System.err.println("/******** TDSUB - cwsub");
									e.printStackTrace();
									System.err.println("TDSSPE - cwsub ********/");
								}
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("DIRECCION_DESCRIPTIVA")) {
								strNombreAtri = "DIRECCION DESCRIPTIVA";
								espgen = 1;
								coListas = null;
								session.setAttribute("tipodato", "A");
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("DIRECCION_ENCASILLADA")) {
								strNombreAtri = "DIRECCION ENCASILLADA";
								espgen = 1;
								coListas = null;
								session.setAttribute("tipodato", "A");
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("TELEFONO")) {
								strNombreAtri = "TELEFONO";
								espgen = 1;
								coListas = null;
								session.setAttribute("tipodato", "A");
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("ETNIA")) {
								strNombreAtri = "ETNIA";
								espgen = 1;
								session.setAttribute("tipodato", "A");
								String Arrlista[] = { "AFROCOLOMBIANO", "INDIGENA", "OTRA" };
								String Arrlista2[] = { "A", "I", "O" };
								for (int h = 0; h < 3; h++) {
									VflexVO valorVO = new VflexVO();
									valorVO.setDescVflex(Arrlista[h]);
									valorVO.setNombreVflex(Arrlista2[h] + "~" + Arrlista[h]);
									valorVO.setCodigoVflex(Arrlista2[h]);
									coListas.add(valorVO);
								}
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("CORREO_ELECTRONICO")) {
								strNombreAtri = "CORREO ELECTRONICO";
								espgen = 1;
								coListas = null;
								session.setAttribute("tipodato", "A");
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("FICHA_SISBEN")) {
								strNombreAtri = "FICHA SISBEN";
								espgen = 1;
								coListas = null;
								session.setAttribute("tipodato", "A");
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("HOGAR_SISBEN")) {
								strNombreAtri = "HOGAR SISBEN";
								espgen = 1;
								coListas = null;
								session.setAttribute("tipodato", "A");
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("ORDEN_SISBEN")) {
								strNombreAtri = "ORDEN SISBEN";
								espgen = 1;
								coListas = null;
								session.setAttribute("tipodato", "A");
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("NIVEL_SISBEN")) {
								strNombreAtri = "NIVEL SISBEN";
								espgen = 1;
								coListas = null;
								session.setAttribute("tipodato", "A");
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("PUNTAJE_SISBEN")) {
								strNombreAtri = "PUNAJE SISBEN";
								espgen = 1;
								coListas = null;
								session.setAttribute("tipodato", "A");
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("FE_ENCUESTA_SISBEN")) {
								strNombreAtri = "FECHA ENCUESTA SISBEN";
								espgen = 1;
								coListas = null;
								session.setAttribute("tipodato", "F");
								session.setAttribute("listavfl", (Object)coListas);
							} else if (strCodAtributo.equals("DISCAPACIDAD_SISBEN")) {
								strNombreAtri = "DISCAPACIDAD SISBEN";
								espgen = 1;
								session.setAttribute("tipodato", "A");
								String Arrlista[] = { "SI", "NO" };
								String Arrlista2[] = { "SI", "NO" };
								for (int h = 0; h < 2; h++) {
									VflexVO valorVO = new VflexVO();
									valorVO.setDescVflex(Arrlista[h]);
									valorVO.setNombreVflex(Arrlista2[h] + "~" + Arrlista[h]);
									valorVO.setCodigoVflex(Arrlista2[h]);
									coListas.add(valorVO);
								}
								session.setAttribute("listavfl", (Object)coListas);
							}
							//fin proceso
							if (obAccion.equals("2")) {
								if (ir == 1) {
									lFiltrado = (List)session.getAttribute("ListaFiltrado");
									if (lFiltrado == null) {
										lFiltrado = new LinkedList();
									}

									CondicionConsultaVO objCondConsVO = new CondicionConsultaVO();
									objCondConsVO.setCodcampo(strCodAtributo);
									objCondConsVO.setCampo(strNombreAtri);
									String strdato = (String)session.getAttribute("tipodato");
									objCondConsVO.setTipocampo(strdato);

									objCondConsVO.setOrigen("G");
									objCondConsVO.setCodigo(String.valueOf(lFiltrado.size()));
									String filtro = request.getParameter("filter");
									int iFiltro = Integer.parseInt(filtro.trim());

									switch (iFiltro) {
									case 1:
										objCondConsVO.setFiltro("[>=] Mayor o Igual");
										objCondConsVO.setCodfiltro(">=");
										break;
									case 2:
										objCondConsVO.setFiltro("[<=] Menor o Igual");
										objCondConsVO.setCodfiltro("<=");
										break;
									case 3:
										objCondConsVO.setFiltro("[=] Igual a");
										objCondConsVO.setCodfiltro("=");
										break;
									case 4:
										objCondConsVO.setFiltro("[!=] Diferente a");
										objCondConsVO.setCodfiltro("<>");
										break;
									case 5:
										objCondConsVO.setFiltro("[<] Menor");
										objCondConsVO.setCodfiltro("<");
										break;
									case 6:
										objCondConsVO.setFiltro("[>] Mayor");
										objCondConsVO.setCodfiltro(">");
										break;
									case 7:
										objCondConsVO.setFiltro("Entre");
										objCondConsVO.setCodfiltro("between");
										break;
									}
									Object obValorComparar = request.getParameter("valor");
									Object obValor2Comparar = request.getParameter("valor2");
									if (obValorComparar != null) {
										if (!strdato.equals("F")) {
											objCondConsVO.setValor(request.getParameter("valor"));
											objCondConsVO.setEtiquetaValor(request.getParameter("valor"));
										} else {
											String strFecha = request.getParameter("valor");
											String ArrFecha[] = strFecha.split("-");
											String strvalor = ArrFecha[2] + "/" + ArrFecha[1] + "/" + ArrFecha[0];
											objCondConsVO.setValor(strvalor);
											objCondConsVO.setEtiquetaValor(strvalor);
										}

									} else {
										String descVflex = request.getParameter("descVflex");
										String codDesc[] = descVflex.split("~");
										objCondConsVO.setValor(codDesc[0]);
										objCondConsVO.setEtiquetaValor(codDesc[1]);
									}
									String objValor2 = (String)obValor2Comparar;
									if (obValor2Comparar != null && !objValor2.equalsIgnoreCase("")) {
										if (!strdato.equals("F")) {
											objCondConsVO.setValor2(request.getParameter("valor2"));
										} else {
											String strFecha = request.getParameter("valor2");
											String ArrFecha[] = strFecha.split("-");
											String strvalor = ArrFecha[2] + "/" + ArrFecha[1] + "/" + ArrFecha[0];
											objCondConsVO.setValor2(strvalor);

										}

									}

									lFiltrado.add(objCondConsVO);
									session.setAttribute("ListaFiltrado", (Object)lFiltrado);
								}
							}
						} else {
							session.setAttribute("listavfl", (Object)coListas);
						}

						try {
							if (!strCodAtributo.equals("nulo")) {
								if (espgen != 1) {
									objBeneOtorDAO = new RepBeneficioOtorgadoDAO(cf);
									coListas = objBeneOtorDAO.getListaAtri(strCodAtributo);
									//   cf.closeConnection(objBeneOtorDAO.getConn());
									if (coListas.size() == 0) {
										coListas = null;
									}

									cf.closeConnection(objBeneOtorDAO.getConn());

									AtributosDAO objAtriDAO = new AtributosDAO(cf);
									AtributoVO AtriVO = objAtriDAO.GetPropiedadesAtri(strCodAtributo);
									cf.closeConnection(objAtriDAO.getConn());
									//proceso para saber el tipo de dato para mostrar el select del filtro
									String strTipoDato = AtriVO.getTipodato();
									session.setAttribute("tipodato", strTipoDato);
									//fin proceso

									if (obAccion.equals("2")) {
										if (ir == 0) {
											lFiltrado = (List)session.getAttribute("ListaFiltrado");
											if (lFiltrado == null) {
												lFiltrado = new LinkedList();
											}

											CondicionConsultaVO objCondConsVO = new CondicionConsultaVO();
											objCondConsVO.setCampo(AtriVO.getEtiqueta());
											objCondConsVO.setCodcampo(AtriVO.getCodigo());
											objCondConsVO.setOrigen("E");
											objCondConsVO.setTipocampo(AtriVO.getTipodato());
											String filtro = request.getParameter("filter");
											int iFiltro = Integer.parseInt(filtro.trim());
											objCondConsVO.setCodigo(String.valueOf(lFiltrado.size()));
											switch (iFiltro) {
											case 1:
												objCondConsVO.setFiltro("[>=] Mayor o Igual");
												objCondConsVO.setCodfiltro(">=");
												break;
											case 2:
												objCondConsVO.setFiltro("[<=] Menor o Igual");
												objCondConsVO.setCodfiltro("<=");
												break;
											case 3:
												objCondConsVO.setFiltro("[=] Igual a");
												objCondConsVO.setCodfiltro("=");
												break;
											case 4:
												objCondConsVO.setFiltro("[!=] Diferente a");
												objCondConsVO.setCodfiltro("<>");
												break;
											case 5:
												objCondConsVO.setFiltro("[<] Menor");
												objCondConsVO.setCodfiltro("<");
												break;
											case 6:
												objCondConsVO.setFiltro("[>] Mayor");
												objCondConsVO.setCodfiltro(">");
												break;
											case 7:
												objCondConsVO.setFiltro("Entre");
												objCondConsVO.setCodfiltro("between");
												break;
											}
											Object obValorComparar = request.getParameter("valor");
											Object obValor2Comparar = request.getParameter("valor2");
											if (obValorComparar != null) {
												if (!AtriVO.getTipodato().equals("F")) {
													objCondConsVO.setValor(request.getParameter("valor"));
													objCondConsVO.setEtiquetaValor(request.getParameter("valor"));
												} else {
													String strFecha = request.getParameter("valor");
													String ArrFecha[] = strFecha.split("-");
													String strvalor = 
														ArrFecha[2] + "/" + ArrFecha[1] + "/" + ArrFecha[0];
													objCondConsVO.setValor(strvalor);
													objCondConsVO.setEtiquetaValor(strvalor);
												}
											} else {
												String descVflex = request.getParameter("descVflex");
												String codDesc[] = descVflex.split("~");
												objCondConsVO.setValor(codDesc[1]);
												objCondConsVO.setEtiquetaValor(codDesc[1]);

												//   objCondConsVO.setValor(request.getParameter("descVflex"));
												//   objCondConsVO.setEtiquetaValor(request.getParameter("descVflex"));
											}

											if (obValor2Comparar != null) {
												if (!AtriVO.getTipodato().equals("F")) {
													objCondConsVO.setValor2(request.getParameter("valor2"));
												} else {
													String strFecha = request.getParameter("valor2");
													String ArrFecha[] = strFecha.split("-");
													String strvalor = 
														ArrFecha[2] + "/" + ArrFecha[1] + "/" + ArrFecha[0];
													objCondConsVO.setValor2(strvalor);

												}
											}

											lFiltrado.add(objCondConsVO);
											session.setAttribute("ListaFiltrado", (Object)lFiltrado);
										}
									}
								} else {
									session.setAttribute("listavfl", (Object)coListas);
								}
							}
							session.setAttribute("listavfl", (Object)coListas);
						} catch (SQLException e) {
							System.err.println("/******** TDSUB - cwsub");
							e.printStackTrace();
							System.err.println("TDSSPE - cwsub ********/");
						}

					}

					session.setAttribute("generar", strCodsubpro);
					session.setAttribute("sede", strCodSede);
					List lListaAtributos = new LinkedList();

					//lListaAtributos = objCons.getAtributoEspecificos(strCodsubpro,1);
					RepBeneficioOtorgadoDAO BeneOtorDAO = new RepBeneficioOtorgadoDAO(cf);
					try {
						lListaAtributos = BeneOtorDAO.getAtributoEspecificos(strCodsubpro);
						cf.closeConnection(BeneOtorDAO.getConn());
						session.setAttribute("listaatributos", (Object)lListaAtributos);
					} catch (SQLException e) {
						System.err.println("/******** TDSUB - cwsub");
						e.printStackTrace();
						System.err.println("TDSSPE - cwsub ********/");
					}
				} //OJO PRUEBA
			} finally {
				try {
					cf.closeConnection(objCons.getConn());
				} catch (SQLException e) {
					System.err.println("/******** TDSUB - cwsub");
					e.printStackTrace();
					System.err.println("TDSSPE - cwsub ********/");
				}
			}

			return mapping.findForward("success");
		} else {
			request.setAttribute("msg", "Por favor seleccione una opción para generar el reporte");

			return mapping.findForward("regresar");
		}
	}
}
